2020a 第05回: コンピュータアーキテクチャ基礎②
課題総評/前回授業の復習
授業調査アンケート結果
1. 知らない単語が出てもスラスラ進んでしまうので困るの声
申し訳ない…🙇
生徒横断でみるとどうしても知識gapが多いと思うので、不明な単語は容赦なく #fit1-2020a で聞いてみて下さい! 実は知っているつもりの学生からしても、間違った認識を持っていることも多々あるので全体に資する質問です
どうしても気恥ずかしいという場合はDMいただいても大丈夫です
2. Breakout Session機能してないのではの声
案A. 講師/TA/SA巡回してほしい
案B. Breakout Session自体をなくしてフリーの質疑タイムとしてほしい
zoomの投票機能で聞いてみます
宝探しを一発で終える方法
ls -R
https://gyazo.com/067c78edd9003567880672c8b71086f2
-Rオプション:Recursiveの略
再帰的に(=末端に到達するまで繰り返し続ける形で)サブディレクトリ全てを探索して表示する
treasureが island-bのport-bにあることがわかる
いやいや -Rとか教わらない限り知るわけないし
講義
Quiz
アナログ表現されたものを複製すると劣化するのはなぜか?
複製する際の読み取り/書き込み時にどうしてもノイズが入ってしまう
厳密ではないが、「写真の写真を撮影する」パターンを想像すると多少分かりやすいかもしれない
電話よりCDの方が音質が良いのはなぜか?
電話はアナログ変換された音声を経由するため劣化が発生する
CDはデジタルデータをそのまま書き込んでいるため劣化しない
デジタル録音で、音質を良くしようとするとファイルサイズが大きくなるのはなぜか?
サンプリングする音の周波数帯や頻度が増えるため
デジタルカメラで撮った写真はビットマップ画像かベクトル画像か?
ビットマップ画像
ベクトル画像のフォーマットを3つ挙げよ。
.svg、.ai、eps
ビットマップ画像のフォーマット例
.gif, .jpg, .jpeg
演習はこの場で解いて回答してもらいます (回答者は平常点の「質疑」に加点)
演習3 の解説
各カードが1~31の数字を2進法で表現したときの各桁に対応している
数字の記載がある → 対象の桁は1
数字に記載がない → 対象の桁は0
例:(10進法) 15 → 16*0 + 8*1 + 4*1 + 2*1 + 1*1 → (2進法) 01111 → 順序を反転させてカードに反映
仮言 = かげん、選言 = せんげん 読み方分からなくなりがち
演習はこの場で解いて回答してもらいます (回答者は平常点の「質疑」に加点)
データ圧縮のミソは、圧縮されたデータを復元する時に区切りをどう見つけるかにある
ランレングス符合 … 解説では便宜上 3桁ずつ区切り
ハフマン符号 … 1が登場 or 3桁超えたら区切り
実習
https://gyazo.com/8b97dbc2a1a17aba53d20a3455cdb461
上記ルールに従い、以下データをランレングス符合化により圧縮し、結果をSFC-SFSにて課題提出せよ
黒黒黒黒黒黒黒黒黒黒黒黒白白白白白白白白白白白白白白白白白白白白白白白白白白白白白白白白黒黒黒黒黒黒黒黒黒黒黒黒黒黒黒黒黒
ヒント:黒が12回、白が32回、黒が17回
以下データをハフマン符合化により圧縮し、結果をSFC-SFSに課題提出せよ
赤赤赤紫紫赤橙橙黄橙黄黄緑緑赤赤青黄紫橙橙
ヒント:データは赤橙黄緑青藍紫の7種類
ヒント:藍は登場していないが、対応するビットは割り当てること
以下コマンドを使うと一発でカウントができる、すごい!
echo '赤赤赤紫紫赤橙橙黄橙黄黄緑緑赤赤青黄紫橙橙' | fold -w 3 | sort | uniq -c
| (パイプ) 左側にあるコマンドの実行結果として出力された文字列を右コマンドの引数として渡す
echo … 引数に与えられた文字列をそのまま出力する
fold … 入力されたデータを指定された単位で折りたたむ (改行を挟んでいく)
-w 3 … 3バイトずつ折りたたむという指定
日本語の1文字は3バイトなので… 文字コード の話を思い出そう sort … 入力された複数行のデータを並べ替える
uniq …入力された複数行を上から操作していき、重複するデータを削除する
-c 重複して出力された行数を数えて出力する
提出時は「色とビットの対応表」と「圧縮後のデータ列」をそれぞれ記述すること